<?php

	/**
	 * MotivoAditivo
	 * @author benrainir
	 */
    class MotivoAditivo extends BaseModel
    {

    	protected $motivoaditivoid;
        protected $descricao;
        
        const MOTIVO_DOTACAO_ORCAMENTARIA = 1;
        const MOTIVO_DISSIDIO_COLETIVO = 2;
        const MOTIVO_QUANTIDADE = 3;
        const MOTIVO_PRORROGACAO = 4;
        const MOTIVO_ALTERACAO_ENCARGOS_SOCIAIS = 5;
        const MOTIVO_ALTERACAO_TRIBUTOS = 6;
        const MOTIVO_ALTERACAO_BENEFICIOS = 7;
        
        const tablename = "motivosaditivo";
        const tablekey = "motivoaditivoid";
        const tablesequence = "motivosaditivo_motivoaditivoid_seq";
       
        public function verificarDependencias( $ids )
        {
            $idsSql = '';
            if (is_array ($ids)){
                foreach ($ids as $id){
                    $idsSql .= ', ' . $id;
                }
                $idsSql = substr( $idsSql, 1 );
            }
            elseif (is_numeric ( $ids)){
                $idsSql = $ids;
            }
            else {
                throw new Exception( 'ID inválido.' );
            }
            
            $justificativaAditivo = new JustificativaAditivo();
            $result = $justificativaAditivo->listar( array('precondicao' => $this->getTableKey() . ' IN (' . $idsSql . ')' ) );
            
            if (pg_num_rows ($result) > 0){
                if (is_array ($ids)){
                    throw new Exception( TMensagens::getChavesEstrangeiras() );
                }
                else {
                    throw new Exception( TMensagens::getChaveEstrangeira() );
                }
            }
        }
        
        public function excluir()
        {
            if ( $this->getTableKeyValue() ){
                $this->verificarDependencias ($this->getTableKeyValue());
                parent::excluir();
            }            
        }
        
        public function excluirGrupo ($ids)
        {
            $this->verificarDependencias($ids);
            parent::excluirGrupo ($ids);
        }
    }  
?>